//
//  CZBaseTableViewController.swift
//  czbkiosweibo5
//
//  Created by zhangping on 15/10/12.
//  Copyright © 2015年 zhangping. All rights reserved.
//

import UIKit

class CZBaseTableViewController: UITableViewController {

    // 用户是否登录标志
    let userLogin = CZUserAccount.userLogin
    
    override func loadView() {
        // 如果登录,什么也不做,如果没有登录创建访客视图
        userLogin ? super.loadView() : setupVistorView()
    }
    
    // MARK: - 自定方法
    /**
    创建访客视图
    */
    private func setupVistorView() {
        // 不延伸到导航栏下面,仅测试使用
//        edgesForExtendedLayout = UIRectEdge.None
        // 设置为自定义的访客视图
        view = vistorView
        vistorView.vistorViewDelegate = self
        
        // 在这里根据不同的控制器设置不同的内容
        if self is CZHomeTableViewController {  // 访客视图默认的样式就是首页
            // 是首页的时候需要开启动画
            vistorView.startRotateAnimation()
        } else if self is CZMessageTableViewController {
            vistorView.setupInfo("visitordiscover_image_message", message: "登录后，别人评论你的微博，发给你的消息，都会在这里收到通知")
        } else if self is CZDiscoverTableViewController {
            vistorView.setupInfo("visitordiscover_image_message", message: "登录后，最新、最热微博尽在掌握，不再会与实事潮流擦肩而过")
        } else if self is CZProfileTableViewController {
            vistorView.setupInfo("visitordiscover_image_profile", message: "登录后，你的微博、相册、个人资料会显示在这里，展示给别人")
        }
        
        // 设置全局的外观颜色,越早设置越好,所以放到程序一启动的时候
        // 添加导航栏按钮
        navigationItem.leftBarButtonItem = UIBarButtonItem(title: "注册", style: UIBarButtonItemStyle.Plain, target: self, action: "vistorViewWillRegister")
        navigationItem.rightBarButtonItem = UIBarButtonItem(title: "登录", style: UIBarButtonItemStyle.Plain, target: self, action: "vistorViewWillLogin")
    }
    
    // MARK: - 懒加载
    // 访客视图
    private lazy var vistorView: CZVistorView = CZVistorView()
}

// MARK: - CZBaseTableViewController 扩展,实现 CZVistorViewDelegate 协议
// 扩展,和oc category类似, estension 可以实现协议, 方便代码统一管理
extension CZBaseTableViewController: CZVistorViewDelegate {
    func vistorViewWillRegister() {
        print("CZBaseTableViewController:\(__FUNCTION__)")
    }

    /**
    弹出Oauth授权控制器
    */
    func vistorViewWillLogin() {
        // 创建Oauth授权控制器
        let oauthVC = CZOauthViewController()
        
        // Modal出Oauth授权控制器
        presentViewController(UINavigationController(rootViewController: oauthVC), animated: true, completion: nil)
    }
}